package com.authine.cloudpivot.ext.dto.query;

import com.authine.cloudpivot.ext.Enum.InvoiceBusinessType;
import com.authine.cloudpivot.ext.Enum.InvoiceStatus;
import com.authine.cloudpivot.ext.enums.report.ReportType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.util.Collection;
import java.util.List;

@Data
@SuperBuilder
@NoArgsConstructor
@Accessors(chain = true)
@Schema(description = "开票明细查询条件")
public class InvoiceDetailQuery {

    @Schema(description = "发票号码")
    private String number;

    @Schema(description = "客户订单号")
    private String customer_order_id;

    @Schema(description = "订单商品编号")
    private String order_goods_id;

    @Schema(description = "平台组织")
    private String sale_organization_id;

    @Schema(description = "平台组织名称")
    private String sale_organization_name;

    @Schema(description = "erp_po")
    private String erp_po;

    @Schema(description = "客户组织名称")
    private String organization_name;

    @Schema(description = "发票状态")
    private String invoice_apply_statuss;

    @Schema(description = "当前页码")
    private Integer pageIndex;

    @Schema(description = "每页条数")
    private Integer pageSize;

    @Schema(description = "明细ID")
    private Collection<String> ids;

    @Schema(description = "发票申请单ID")
    private Collection<String> invoiceApplyIds;

    @Schema(description = "红冲发票对应的蓝票ID")
    private Collection<String> offsetIds;

    private Boolean canOffsetQuantity;

    private Boolean canOffsetTotal;

    private List<String> businessTypes;

    /**
     * 后台查询使用
     */
    private List<String> invoiceStatuses;

    @Schema(description = "导出报表类型")
    private ReportType reportType;
    @Schema(description = "导出报表名称")
    private String reportName;




}
